package socket.udp;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

/**
 * @author 周宇
 * @create 2020-05-25 17:17
 * UDP 接收数据
 */
public class ReceiveServer {
    //注意点1：要先运行接收端，再运行发送端
    //注意点2：如果接收端启动之后没有接收到数据，就会死等(阻塞)
    //注意点3：在接收数据的时候，需要调用一个getLength方法，表示接收到了多少个字节
    public static void main(String[] args) throws IOException {
        // 1.找码头   --表示接收端从10000端口接收数据的
        DatagramSocket ds = new DatagramSocket(10000);
        // 2.找新箱子
        //DatagramPacket(byte[] buf, int length)
        byte[] bytes = new byte[1024];
        DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
        // 3.码头接收礼物放入新箱子中
        System.out.println("-----------------接收前--------------------");
        ds.receive(dp);
        System.out.println("-----------------接收后--------------------");
        // 4.村长从箱子中获取礼物
        // byte[] data = dp.getData();
        int length = dp.getLength();
        System.out.println(new String(bytes, 0, length));
        // 5.拿完走羊
        ds.close();
    }
}